home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / dflt18.arj / BARCHART.C < prev    next >
Text File  |  1991-11-07  |  2KB  |  75 lines

  1. /* ------------ barchart.c ----------- */
  2. #include "dflat.h"
  3.  
  4. #define BCHEIGHT 12
  5. #define BCWIDTH 44
  6. #define COLWIDTH 4
  7.  
  8. static WINDOW Bwnd;
  9.  
  10. /* ------- project schedule array ------- */
  11. static struct ProjChart {
  12.     char *prj;
  13.     int start, stop;
  14. } projs[] = {
  15.     {"Center St", 0,3},
  16.     {"City Hall", 0,5},
  17.     {"Rt 395   ", 1,4},
  18.     {"Sky Condo", 2,3},
  19.     {"Out Hs   ", 0,4},
  20.     {"Bk Palace", 1,5}
  21. };
  22.  
  23. static char *Title =  "              PROJECT SCHEDULE";
  24. static char *Months = "           Jan Feb Mar Apr May Jun";
  25.  
  26. static int BarChartProc(WINDOW wnd, MESSAGE msg,
  27.                                     PARAM p1, PARAM p2)
  28. {
  29.     switch (msg)    {
  30.         case COMMAND:
  31.             if ((int)p1 == ID_HELP)    {
  32.                 DisplayHelp(wnd, "BarChart");
  33.                 return TRUE;
  34.             }
  35.             break;
  36.         case CLOSE_WINDOW:
  37.             Bwnd = NULL;
  38.             break;
  39.         default:
  40.             break;
  41.     }
  42.     return DefaultWndProc(wnd, msg, p1, p2);
  43. }
  44.  
  45. void BarChart(WINDOW pwnd)
  46. {
  47.     int pct = sizeof projs / sizeof(struct ProjChart);
  48.     int i;
  49.  
  50.     if (Bwnd == NULL)    {
  51.         Bwnd = CreateWindow(PICTUREBOX,
  52.                     "BarChart",
  53.                     -1, -1, BCHEIGHT, BCWIDTH,
  54.                     NULL, pwnd, BarChartProc,
  55.                     SHADOW     |
  56.                     CONTROLBOX |
  57.                     MOVEABLE   |
  58.                     HASBORDER
  59.         );
  60.         SendMessage(Bwnd, ADDTEXT, (PARAM) Title, 0);
  61.         SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
  62.         for (i = 0; i < pct; i++)    {
  63.             SendMessage(Bwnd,ADDTEXT,(PARAM)projs[i].prj,0);
  64.             DrawBar(Bwnd, SOLIDBAR+(i%4),
  65.                 11+projs[i].start*COLWIDTH, 2+i,
  66.                 (1 + projs[i].stop-projs[i].start) * COLWIDTH,
  67.                 TRUE);
  68.         }
  69.         SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
  70.         SendMessage(Bwnd, ADDTEXT, (PARAM) Months, 0);
  71.         DrawBox(Bwnd, 10, 1, pct+2, 25);
  72.     }
  73.     SendMessage(Bwnd, SETFOCUS, TRUE, 0);
  74. }
  75.